package com.yuzhi.master.drainagePermit.service;

import com.yuzhi.master.drainagePermit.domain.DrainDrainagePermit;
import com.yuzhi.master.drainagePermit.domain.vo.DrainDrainagePermitView;
import com.yuzhi.master.drainagePermit.domain.vo.DrainDrainagePermitVo;
import com.yuzhi.master.drainagePermit.domain.bo.DrainDrainagePermitBo;
import com.yuzhi.master.drainagePermit.domain.request.DrainDrainagePermitReq;
import com.yuzhi.common.core.page.PageDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 排水许可证Service接口
 *
 * @author coding123
 * @date 2025-07-15
 */
public interface IDrainDrainagePermitService {

    /**
     * 查询排水许可证
     */
    DrainDrainagePermitVo queryById(String id);

    /**
     * 查询排水许可证列表
     */
    PageDataInfo<DrainDrainagePermitVo> queryPageList(DrainDrainagePermitReq request);

    /**
     * 查询排水许可证列表
     */
    List<DrainDrainagePermitVo> queryList(DrainDrainagePermitReq request);

    /**
     * 新增排水许可证
     */
    Boolean insertByBo(DrainDrainagePermitBo bo);

    /**
     * 修改排水许可证
     */
    Boolean updateByBo(DrainDrainagePermitBo bo);

    /**
     * 根据id删除排水许可证信息
     */
    Boolean deleteById(String id, Boolean isValid);

    /**
     * 校验并批量删除排水许可证信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);


    /**
     * 分页查询排水许可证列表
     */
    PageDataInfo<DrainDrainagePermitView> queryPageViewList(DrainDrainagePermitReq request);

    /**
     * 查询排水许可证
     */
    DrainDrainagePermitView getInfoViewById(String id);

}
